package Funcionalidad;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class C_fotos {

    private static final String controlador = "com.mysql.jdbc.Driver";
    private static final String url = "jdbc:mysql://localhost/flog";
    private static final String usuario = "root";
    private static final String clave = "";

    static {
        try {
            Class.forName(controlador);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("Error creating driver" + " class. Cause: " + e);
        }
    }
//recoge los datos de un comentario foto
       public static C_foto ResultSetToC_foto(ResultSet resultado) throws SQLException {
        return new C_foto(resultado.getInt("id_cfoto"),resultado.getInt("id_foto"), resultado.getString("user"), resultado.getString("fecha"), resultado.getString("comentario"));
    }
//devuelve una cadena con lo que tiene que decir si hay 1, 0 o muchos comentarios
    public static String N_Comentarios(int id_foto) throws Exception {

        int num = 0;
        Connection conexion = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, usuario, clave);
        Statement solicitud = (Statement) conexion.createStatement();
        ResultSet resultados = solicitud.executeQuery("SELECT count(*) as numero from comentario_foto where id_foto=" + id_foto);
        while (resultados.next()) {
            num = Integer.parseInt(resultados.getString("numero"));
        }
        resultados.close();
        solicitud.close();
        conexion.close();
        String s = "";
        if (num == 0) {
            s = "<h5>S&eacute; el primero en escribir un comentario</h5>";
        } else if (num == 1) {
            s = "<h5>1 comentario</h5>";
        } else {
            s = "<h5>" + num + " comentarios</h5>";
        }
        return s;
    }
    //borra el comentario de la foto que se le pasa por parametro.
    public static void borraComentarioFoto(int id_cfoto) throws Exception {
        Connection conexion = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, usuario, clave);
        //solicitud/recepcion de peticiones
        Statement solicitud = (Statement) conexion.createStatement();
        int m = solicitud.executeUpdate("DELETE FROM comentario_foto where id_cfoto=" + id_cfoto);
        solicitud.close();
        conexion.close();
    }
        public static List<C_foto> getComentarios(int id_foto) throws Exception {

        List<C_foto> lista = new ArrayList();
        Connection conexion = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, usuario, clave);
        Statement solicitud = (Statement) conexion.createStatement();
        ResultSet resultados = solicitud.executeQuery("SELECT * FROM `comentario_foto`group by `id_cfoto` having id_foto=" + id_foto + " ORDER BY `id_cfoto` desc");
        while (resultados.next()) {
            C_foto foto = C_fotos.ResultSetToC_foto(resultados);
            lista.add(foto);
        }
        resultados.close();
        solicitud.close();
        conexion.close();

        return lista;
    }
        //Crea un nuevo comentario en la foto que se le pasa por parametro con el comentario y el usuario que lo hizo
           public static void nuevoComentarioFoto(int id_foto,String user, String comentario) throws Exception {
        Connection conexion = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, usuario, clave);
        //solicitud/recepcion de peticiones
        Statement solicitud = (Statement) conexion.createStatement();
        //try{
        /*int m = */solicitud.executeUpdate("INSERT INTO comentario_foto (id_foto,user,fecha,comentario) values("+id_foto+",'"+user+"','"+Habituales.fechaActual()+"','"+comentario+"')");
        //}catch(Exception e){}

        solicitud.close();
        conexion.close();
    }
}
